package practice.Day30;

/**
 * @Author quan
 * @Description 质因子个数（大概看懂了）
 * @Date 2023/6/25 21:50
 */

/**
 * 要求：一个正整数可以分解成一个或者多个数组的积“36=2*2*3*3,包含2和3两个因子。
 * 求出每个正整数的因子个数。
 */

//这里的因子其实是质因子，既要满足是质数，又要是因子数
//30的因子个数是3  3*2*5  -2,3,5
//26的因子个数是2  2*13   -2,13
//20的因子个数是2  2*2*5  - 2,5

import java.util.Scanner;

/**
 * 思路：
 * （1）如果一个数字不为1，那么最少有两个质因子（自身和1，不过1不是质数）；
 * （2）从i=2开始到sqrt(n)作循环没如果n%i==0，那么因子数+1；
 * 要注意去重的问题
 */


public class Num2_isPrimeNum {
    public static void main(String[] args) {
        //1、获取输入数据
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
           int n = sc.nextInt();
           //2、定义变量count
            int count = 0;
            for (int i = 2; i < Math.sqrt(n); i++) {
                //3、因为不能重复计数，所以先算符合因子数的个数
                if(n % i == 0){
                    count++;
                }
                //4、更新n的值
                while (n % i == 0){
                    n/=i;
                }
            }
            //5、判断n值是否为1：如果不为1说明该数字是一个质数，因子数包含n本身，计数要加1
            if(n!=1){
                count++;
            }
            System.out.println(count);
        }
    }
}


